<div></div>
<img src="" alt="">
<div class="news"></div>
<div></div>
<script>

// 1.以下场景应该使用哪种方法(用连线表示)。（选最佳方案，一种方案可以选择多次）。

// 找出10000个随机排列数字中的最大值         sort                
// 转换一组obj数据为html字符串                join             
// 为所有\<button\>元素绑定事件                map             foreach
// 遍历obj的所有key打印obj[key]的值         for...in循环               
// 排除一组数据中符合某条件的元素            filter                for循环
// 将一组url变为ajax请求给Promise.all使用                  
// 两个唯一值数组求并集                      splice              
// 两个唯一值数组求交集                                   
// 在一组\<p\>标签dom元素中找内容含有某个词的数据并返回     find   
// 计算10000个数字的平均数          reduce                        

// 2.描述let与var的区别？
/*
let 没有变量提升，不能重复声明在同一生命周期，受块作用域影响，不会成为window上的属性
var 有变量提升，可以重复声明，受函数作用域的影响，会成为window的属性

*/

// 回答下面代码会打印什么内容（假设报错不会影响其他代码运行）。
// ```
// console.log(i) // ??undefined
// console.log(fn) // ??fn(){}
// var i = 10
// function fn() {}
// let k = 100
// {
//   {
//     var i = 20
//     let k = 1000
//   }
//   console.log(i) // ??20
//   console.log(k) // ??100
// }
// console.log(window.k) // ??undefined
// ```

// 3.
// ```
const fn = () => console.log(this) // ??window
fn.call({})//window
// ```

// 4.addEventListener方法和句柄式绑定方法有什么区别？
/*
1、onclick添加事件不能绑定多个事件，后面绑定的会覆盖前面的。

2、addEventListener方式，不支持低版本IE。

3、普通方式绑定事件后，不可以取消；addEventListener绑定后，可以用removeEvenListener 取消；

*/

// 5.一个语句选取全部 div元素、img元素和class='news' 的元素？
var div=document.querySelectorAll('div')
var img=document.querySelectorAll('img')
var news=document.querySelectorAll('news')
// 6.（1）在事件监听函数中如何停止冒泡？
// （2）如何知道事件发生在哪个元素上？

// 检测事件源(或检测事件目标)e.srcElement.dom元素属性
// 触发事件的元素，称为目标或事件源   e.srcElement
// （3）监听form元素的提交事件，并在禁止表单默认的提交动作。

// 阻止事件冒泡：事件对象e.stopPropagation();IE78不支持 
//              e.cancelBubble=true;

// 阻止默认行为：默认行为(sumbit,reset,file,href,image)
// e.preventDefault();
// e.returnValue=false;
// return false;


// 7.（1）dom元素上用什么属性可以操作class？

// （2）给dom元素添加一个class怎么写？
// Dom.setAttribute(“属性名”，”值”)，
// 8.
// ```
// function fn(
//   a='hello',
//   {x: [b] = []} = {},
//   ...c
// ) {
//   console.log(a, b, c)
// }
// fn() // 'hello',undefined,[]
// fn(null, {x: '你好'}, undefined, 2) // null,'你'，[undefined,2]
// ```

// 9.localStorage中“numbers”键下已存储了数组的json字符串，要求将这个数组恢复在结尾插入1，再存回localStorage里。
const arr=JSON.parse(localStorage.getItem(key))
arr.push(1)
localStorage.setItem(key,JSON.stringify(arr))



// 1.  将字符串'12 ab 34 cd ef g 6 h 58'转换'\<label\>12\</label\>\<label\>34\</label\>\<label\>6\</label\>\<label\>58\</label\>'

var str='12 ab 34 cd ef g 6 h 58';
var res=str.split(' ').filter(s=>+s==s).map(s=>`<label>${s}</label>`).join('')
console.log(res);






</script>